home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 1 Issue 2 / PDCD-1 - Issue 02.iso / _utilities / utilities / 003 / _mask / !MaskUtils / !Splitter / !RunImage (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1993-09-11  |  3KB  |  128 lines

  1.  Version 1.01
  2. "Hourglass_Off":
  3. SIZE=128*1024:FL%=
  4.  B SIZE
  5. "Please enter the filename of the clear file"
  6.         FL%=
  7.  "OS_File",5,C$ 
  8.  U%,,F%,,L%:F%=(F% >>8)
  9.  U%<>1 
  10. "File not found":FL%=
  11.  F%<>&690 
  12. "Not a clear file":FL%=
  13.  FL%=
  14. H=SIZE:
  15.  L%<H 
  16.  H=L%
  17. "OS_GBPB",4,CH%,B,H
  18. (C$) +1:
  19.  T%-=1:
  20. C$,T%,1)="." 
  21.  T%=0 
  22. C$,T%,1)=":"
  23. FileName$=
  24. C$,T%+1)
  25. T%=B:
  26.  ?T%<>0 T%+=1:
  27. :M=T%
  28. Xm=M!5:Ym=M!9:BPP=M!13 /8
  29.  BPP<=1 
  30.  D=M+17+3*(2^M!13) 
  31.  D=M+17
  32. "INPUT FILE:"
  33. "Name:";C$
  34. "Size:";L%;" bytes"
  35. "X:";Xm;" pixels"
  36. "Y:";Ym;" pixels"
  37. 40,0)"OUTPUT FILE:"
  38. 40,1)"Name:";C$+"+"
  39. 40,2)"Size:";L%;" bytes"
  40. 40,3)"X:";Xm;" pixels"
  41. 40,4)"Y:";Ym;" pixels"
  42. "Please select the area to be saved"
  43. $    S=.75
  44.  0,0,Xm*S,Ym*S:
  45. X0,Y0,B0:
  46. B0>0 
  47.  X0<Xm*S 
  48.  Y0<Ym*S:X=X0:Y=Y0
  49. Xold=X0:Yold=Y0:
  50.  X,Y,0,0
  51. X,Y,B0
  52.  X>=Xm*S 
  53.  X=Xm*S
  54.  Y>=Ym*S 
  55.  Y=Ym*S
  56.  X<>Xold 
  57.  Y<>Yold 
  58.  X0,Y0,Xold-X0,Yold-Y0:
  59.  X0,Y0,X-X0,Y-Y0:Xold=X:Yold=Y:
  60.  B0=0
  61. "PRESS RETURN OR SPACE TO SAVE or another key to try again"
  62.  B$=" " 
  63. "Filename:";D$
  64.  D$="" 
  65. (FileName$)=10 
  66. "Please enter a filename:";D$
  67.  D$="" 
  68.  D$=C$+"+"
  69.  "OS_File",5,D$ 
  70.  U%,,F%,,L%:F%=(F% >>8)
  71.  U%=2 
  72.  D$;" is a directory, saving aborted":
  73.  U%=1 
  74.  F%<>&690 
  75. 7F    
  76.  "File already exists with type &";~F%;" Are you sure? (Y/N)"
  77. 86    A$=
  78.  A$<>"Y" 
  79.  A$<>"y" 
  80. "Saving aborted":
  81. 9        
  82. (D$):C%=
  83. ;/X0%=X0/S:Y0%=Ym-1-Y0/S:X1%=X/S:Y1%=Ym-1-Y/S
  84.  Y0%<0 
  85.  Y0%=0
  86.  Y1%<0 
  87.  Y1%=0
  88.  X0%>Xm-1 
  89.  X0%=Xm-1
  90.  X1%>Xm-1 
  91.  X1%=Xm-1
  92.  X0%>X1% 
  93.  X0%,X1%
  94.  Y0%>Y1% 
  95.  Y0%,Y1%
  96. B+X%=X1%-X0%+1:Y%=Y1%-Y0%+1:M!5=X%:M!9=Y%
  97. "Hourglass_On"
  98. "OS_GBPB",2,D%,B,D-B:L=0
  99. B%=Y0% 
  100.  Y1%:
  101. "Hourglass_Percentage",(B%-Y0%)/(Y1%-Y0%)*100
  102. "OS_GBPB",3,C%,B+X%*BPP*L,X%*BPP,D-B+BPP*(B%*Xm+X0%):L+=1
  103.  (L+1)*BPP*X%>SIZE 
  104. writeoutbuffer
  105. writeoutbuffer
  106. "Hourglass_Off"
  107. "SetType "+D$+" 690"
  108. writeoutbuffer
  109.  L=0 
  110. "OS_GBPB",2,D%,B,X%*BPP*L
  111. W/X0%=X0/S:Y0%=Ym-1-Y0/S:X1%=X/S:Y1%=Ym-1-Y/S
  112.  Y0%<0 
  113.  Y0%=0
  114.  Y1%<0 
  115.  Y1%=0
  116.  X0%>Xm-1 
  117.  X0%=Xm-1
  118.  X1%>Xm-1 
  119.  X1%=Xm-1
  120.  X0%>X1% 
  121.  X0%,X1%
  122.  Y0%>Y1% 
  123.  Y0%,Y1%
  124. X%=X1%-X0%+1:Y%=Y1%-Y0%+1
  125. 40,2)"Size:";D-B+BPP*X%*Y%;" bytes  "
  126. 40,3)"X:";X%;" pixels  "
  127. 40,4)"Y:";Y%;" pixels  "
  128.